<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // let str = 'aabbbbbccc';
    // let obj = {}
    // for (var i = 0; i < str.length; i++) {
    //     // 把item当成对象中的键
    //     let a = str[i]
    //     // 如果对象中有键让对应的值++
    //     if (obj[a]) {
    //         obj[a]++
    //     }
    //     // 一开始是走这里，给对象中的键赋个默认值，
    //     else {
    //         obj[a] = 1
    //     }
    // }
    // // 得到相应的对象
    // console.log(obj);

    // 数组去重的方法
    let arr=[1,1,1,2,2,2,2,2,4,5,7,7,7,9,9]
    // es6新增的new Set 代码少，推荐使用    不适用拓展运算符这个数组就是一个伪数组 不能使用真正数组中的方法 
    // 可以使用Array from解决，把伪数组变成真数组


    // arr=new Set(arr)
    // let arr1 = Array.from(arr)
    // arr1.push(6)
    // console.log(arr1);    //不适用Array.from会报arr.push不是一个函数

    // arr=[...new Set(arr)] 
    // arr.push(6)
    // console.log(arr);    //正确使用方法

    // forEach+includes 定义一个空数组，把没有重复的数据放进去
    let arr1=[]
    // arr.forEach(item=>{
    //     // includes：判断有没有符合条件的，有返回true，没有返回false，这里判断arr1中有没有当前项，没有就添加进去，否则不做任何操作 
    //     if(!arr1.includes(item)){
    //         arr1.push(item)
    //     }
    // })
    // console.log(arr1);  //结果：[1, 2, 4, 5, 7, 9]

    // forEach+indexOf
    // arr.forEach(item=>{
    //     // indexOf：如果找到当前项，返回对应的下标，否则返回负一，返回-1说明数组里面没有这个参数，可以添加到新数组
    //     if(arr1.indexOf(item)==-1){
    //         arr1.push(item)
    //     }
    // })
    // console.log(arr1);      //结果：[1, 2, 4, 5, 7, 9]
    
   

    
</script>

</html>